package sge.DAO;

import java.util.ArrayList;
import java.util.logging.Logger;
import sge.Datos.ModeloTabla;
import sge.Entidades.*;

public class HorarioDAO implements ObjetoDAO {

    private final static Logger LOG = Logger.getLogger(UsuarioDAO.class.getName());

    public HorarioDAO() {
    }

    public boolean crear(Horario horario) {
        String consulta = "INSERT INTO horario(id_horario, evento_id_evento, "
                + "lugar_id_lugar, fecha, hora_inicio, hora_fin) VALUES(NULL, '"
                + horario.getEventoIdEvento() + "', '"
                + horario.getLugarIdLugar() + "', '"
                + horario.getFecha() + "', '"
                + horario.getHoraInicio() + "', '"
                + horario.getHoraFin() + "');";


        boolean exito = CONEXION.ejecutarSQL(consulta) > 0;;
        if (exito) {
            horario.setIdHorario(CONEXION.obtenerUltimoIDGenerado());
        }
        return exito;
    }

    public boolean consultar(Horario horario) {

        /*String consulta = "SELECT * FROM usuario WHERE estado = 1 ";

         if (u.getIdUsuario() != null) {
         consulta += " AND id_usuario = ?";
         }else {
         return false;
         }

         PreparedStatement ps =
         CONEXION.crearSentenciaPreparada(consulta);

         try {
         ps.setInt(1, u.getIdUsuario());
     
         ResultSet rs = ps.executeQuery();

         if (rs.next()) {
         u.setIdUsuario(rs.getInt(1));
         u.setClave(rs.getString(2));
         u.setDocumento(rs.getString(3));
         u.setNombre(rs.getString(4));
         u.setApellido(rs.getString(5));
         u.setDireccion(rs.getString(6));
         u.setTelefono(rs.getString(7));
         u.setTipo(rs.getString(8));
         u.setCargo(rs.getString(9));
         u.setEstado(rs.getString(10));
         return true;
         } else {
         return false;
         }

         } catch (SQLException ex) {
         Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
         }*/
        return false;
    }

    public boolean modificar(Horario horario) {
        String consulta = "UPDATE horario SET "
                + "id_horario='" + horario.getIdHorario()
                + "', evento_id_evento='" + horario.getEventoIdEvento()
                + "', lugar_id_lugar='" + horario.getLugarIdLugar()
                + "', fecha='" + horario.getFecha()
                + "', hora_inicio='" + horario.getHoraInicio()
                + "', hora_fin='" + horario.getHoraFin() + "' WHERE "
                + "id_horario='" + horario.getIdHorario() + "';";


        boolean exito = CONEXION.ejecutarSQL(consulta) > 0;;
        return exito;
    }

    public boolean eliminar(Integer idHorario) {
        String consulta = "DELETE FROM horario WHERE id_horario='" + idHorario + "';";
        boolean exito = CONEXION.ejecutarSQL(consulta) > 0;;
        return exito;
    }

    public ModeloTabla seleccionar() {
        String consulta = "SELECT * FROM horario";
        ArrayList<String> cols = new ArrayList<>();

        cols.add("Id horario");
        cols.add("Evento id evento");
        cols.add("Lugar id lugar");
        cols.add("Fecha");
        cols.add("Hora inicio");
        cols.add("Hora fin");

        ModeloTabla modelo = new ModeloTabla(consulta, cols, false);

        return modelo;

    }
}